perm filename PRTEST[8,ALS] blob sn#046196 filedate 1973-05-31 generic text, type T, neo UTF8
00100	PROCEDURE TEST;
00200	INTEGER H1,H2,H3,H4,I,J,K,L,M;
00250	INTEGER FOUND,CONFRM,MAYBE,EXCESS,MISS;
00300	STRING LAB;
00400	INTEGER ARRAY LEVH1,LEVH2,LEVH3,LEVH4,SEGH1,SEGH2,SEGH3,SEGH4[0:CNTSIZ];
00405	
00410	PRELOAD_WITH
00420	CVSIX("STOP"),CVSIX("VOICED"),CVSIX("FRIC"),CVSIX("VOIFRI"),CVSIX("VS"),0;
00430	INTEGER ARRAY FEAT1[0:7];
00435	
00440	PRELOAD_WITH
00450	CVSIX("SCHWA"),CVSIX("NASAL"),CVSIX("GLIDE"),CVSIX("VOWEL"),0;
00460	INTEGER ARRAY FEAT2[0:7]
00465	
00470	PRELOAD_WITH
00480	CVSIX("S/T"),CVSIX("SH/K"),CVSIX("F/P"),0;
00490	INTTEGER ARRAY FEAT3[0:7];
00493	
00495	PRELOAD_WITH
00497	CVSIX("FRONT"),CVSIX("MID"),CVSIX("BACK"),0;
00498	INTEGER ARRAY FEAT4[0:7];
00500	
00600	BEGIN
00605	H1←H2←H3←H4←0;
00610	FOR I←21 STEP 1 UNTIL 127 DO BEGIN
00620	 IF LFILE[I]=0 THEN DONE;
00630	 K←LDB(POINT(12,LFILE[I],11));
00640	 FOR J←0 STEP 1 UNTIL 63 DO IF K=PHLIST[J] THEN DONE;
00650	 HPOINT←POINT(1,HLIST[J],-1);
00660	 FOR L←0 STEP 1 UNTIL 35 DO IF ILDB(HPOINT)=1 THEN BEGIN
00670	  LAB←CVXSTR(FLIST[L];
00680	  IF EQU(LAB,"VOICED")∨EQU(LAB,"FRIC  ")∨EQU(LAB,"VOIFRI")
00690		∨EQU(LAB,"VS    ")∨EQU(LAB,"STOP  ")  THEN BEGIN
00700	   LEVH1[H1]←FLIST[L]; SEGH1[H1]←LFILE[I];H1←H1+1; END ELSE IF
00710	   EQU(LAB,"SCHWA ")∨EQU(LAB,"NASAL ")∨EQU(LAB,"GLIDE ")∨EQU(LAB,"VOWEL ")
00720	   THEN BEGIN LEVH2[H2]←FLIST[L]; SEGH2[H2]←LFILE[I]; H2←H2+1; END ELSE IF
00730	   EQU(LAB,"S/T   ")∨EQU(LAB,"SH/K  ")∨EQU(LAB,"F/P   ") THEN
00740	   BEGIN LEVH3[H3]←FLIST[L]; SEGH3[H3]←LFILE[I], H3←H3+1; END ELSE
00750	   IF EQU(LAB,"FRONT)∨EQU(LAB,"MID")∨EQU(LAB,"BACK") THEN
00760	   BEGIN LEVH4[H4]←FLIST[L]; SEGH4[H4]←LFILE[I]; H4←H4+1; END;
00770	  END;
00780	
00790	 LEVH1[H1]←LEVH2[H2]←LEVH3[H3]←LEVH4[H4]←0;
00800	
00900	J←K←0; IF LEVH1[J]=CVSIX("STOP") THEN J←J+1;
00910	IF LEV1[K]=CVSIX("STOP") THEN K←K+1;
00920	
00930	OUT(CHAN6,"Features"&TB&"Found"&TB&"Confrmd"&tb&"Maybe"&TB"&"Excess"&TB&
00940	   "Missed"&CRLF);
01000	FOR I=0 STEP 1 UNTIL 7 DO BEGIN
01005	 FOUND←CONFRM←MAYBE←EXCESS←MISSED←0;
01010	 WHILE J<CNTSIZ DO BEGIN IF LEVH1[J]=0 THEN DONE; IF LEVH1[J]=FEAT1[I] THEN DONE; J←J+1; END;
01020	 WHILE K<CNTSIZ DO BEGIN IF LEV2[K]=0 THEN DONE; IF LEV2[K]=FEAT1[I] THEN DONE; K←K+1; END;
01030	
01040	 IF LDB(POINT(12,SEGH1[J],35))+LDB(POINT(12,SEGH1[J],23))<
01050	  LDB(POINT(12,SEG1[K],17)) THEN BEGIN MISS[I]←MISS[I]+1; J←J+1; END ELSE
01060	 IF LDB(POINT(12,SEG1[K],17))+LDB(POINT(12,SEG1[K],35))<
01070	  LDB(POINT(12,SEGH1[J] THEN
01080	   IF LDB(POINT(12,SEGH1[J-1],23))+LDB(POINT(12,SEGH1[J-1],35))
01090	   <LDB(POINT(12,SEG1[K],17)) THEN  MAYBE[I]←MAYBE[I]+1 ELSE
01100	   EXCESS←EXCESS+1; ; K←K+1; END ELSE
01110	 BEGIN CONFRM[I]←CONFRM[I]+1; I←I+1; J←J+1; END;
01120	FOUND←CONFRM+MAYBE+EXCESS;
01130	OUT(CHAN6,CVXSTR(FEAT1[I]&TB&CVS(FOUND)&TB&CVS(CONFRM)&TB&CVS(MAYBE)&TB&
01140	  CVS(EXCESS)&TB&CVS(MISS)&CRLF);
01150	END; OUT(CHAN6,CRLF);
01157	
02000	FOR I=0 STEP 1 UNTIL 7 DO BEGIN
02004	 J←K←0; FOUND←CONFRM←MAYBE←EXCESS←MISSED←0;
02010	 WHILE J<CNTSIZ DO BEGIN IF LEVH2[J]=0 THEN DONE; IF LEVH2[J]=FEAT2[I] THEN DONE; J←J+1; END;
02020	 WHILE K<CNTSIZ DO BEGIN IF LEV2[K]=0 THEN DONE; IF LEV2[K]=FEAT2[I] THEN DONE; K←K+1; END;
02030	
02040	 IF LDB(POINT(12,SEGH2[J],35))+LDB(POINT(12,SEGH2[J],23))<
02050	  LDB(POINT(12,SEG2[K],17)) THEN BEGIN MISS[I]←MISS[I]+1; J←J+1; END ELSE
02060	 IF LDB(POINT(12,SEG2[K],17))+LDB(POINT(12,SEG2[K],35))<
02070	  LDB(POINT(12,SEGH2[J] THEN
02080	   IF LDB(POINT(12,SEGH2[J-1],23))+LDB(POINT(12,SEGH2[J-1],35))
02090	   <LDB(POINT(12,SEG2[K],17)) THEN  MAYBE[I]←MAYBE[I]+1 ELSE
02100	   EXCESS←EXCESS+1; ; K←K+1; END ELSE
02110	 BEGIN CONFRM[I]←CONFRM[I]+1; I←I+1; J←J+1; END;
02120	FOUND←CONFRM+MAYBE+EXCESS;
02130	OUT(CHAN6,CVXSTR(FEAT2[I]&TB&CVS(FOUND)&TB&CVS(CONFRM)&TB&CVS(MAYBE)&TB&
02140	  CVS(EXCESS)&TB&CVS(MISS)&CRLF);
02150	END;
02160	
03000	FOR I=0 STEP 1 UNTIL 7 DO BEGIN
03002	 J←K←0; FOUND←CONFRM←MAYBE←EXCESS←MISSED←0;
03010	 WHILE J<CNTSIZ DO BEGIN IF LEVH3[J]=0 THEN DONE; IF LEVH3[J]=FEAT3[I] THEN DONE; J←J+1; END;
03020	 WHILE K<CNTSIZ DO BEGIN IF LEV3[K]=0 THEN DONE; IF LEV3[K]=FEAT3[I] THEN DONE; K←K+1; END;
03030	
03040	 IF LDB(POINT(12,SEGH3[J],35))+LDB(POINT(12,SEGH3[J],23))<
03050	  LDB(POINT(12,SEG3[K],17)) THEN BEGIN MISS[I]←MISS[I]+1; J←J+1; END ELSE
03060	 IF LDB(POINT(12,SEG3[K],17))+LDB(POINT(12,SEG3[K],35))<
03070	  LDB(POINT(12,SEGH3[J] THEN
03080	   IF LDB(POINT(12,SEGH3[J-1],23))+LDB(POINT(12,SEGH3[J-1],35))
03090	   <LDB(POINT(12,SEG3[K],17)) THEN  MAYBE[I]←MAYBE[I]+1 ELSE
03100	   EXCESS←EXCESS+1; ; K←K+1; END ELSE
03110	 BEGIN CONFRM[I]←CONFRM[I]+1; I←I+1; J←J+1; END;
03120	FOUND←CONFRM+MAYBE+EXCESS;
03130	OUT(CHAN6,CVXSTR(FEAT3[I]&TB&CVS(FOUND)&TB&CVS(CONFRM)&TB&CVS(MAYBE)&TB&
03140	  CVS(EXCESS)&TB&CVS(MISS)&CRLF);
03150	END;
03160	
04000	FOR I=0 STEP 1 UNTIL 7 DO BEGIN
04003	 J←K←0; FOUND←CONFRM←MAYBE←EXCESS←MISSED←0;
04010	 WHILE J<CNTSIZ DO BEGIN IF LEVH4[J]=0 THEN DONE; IF LEVH4[J]=FEAT4[I] THEN DONE; J←J+1; END;
04020	 WHILE K<CNTSIZ DO BEGIN IF LEV4[K]=0 THEN DONE; IF LEV4[K]=FEAT4[I] THEN DONE; K←K+1; END;
04030	
04040	 IF LDB(POINT(12,SEGH4[J],35))+LDB(POINT(12,SEGH4[J],23))<
04050	  LDB(POINT(12,SEG4[K],17)) THEN BEGIN MISS[I]←MISS[I]+1; J←J+1; END ELSE
04060	 IF LDB(POINT(12,SEG4[K],17))+LDB(POINT(12,SEG4[K],35))<
04070	  LDB(POINT(12,SEGH4[J] THEN
04080	   IF LDB(POINT(12,SEGH4[J-1],23))+LDB(POINT(12,SEGH4[J-1],35))
04090	   <LDB(POINT(12,SEG4[K],17)) THEN  MAYBE[I]←MAYBE[I]+1 ELSE
04100	   EXCESS←EXCESS+1; ; K←K+1; END ELSE
04110	 BEGIN CONFRM[I]←CONFRM[I]+1; I←I+1; J←J+1; END;
04120	FOUND←CONFRM+MAYBE+EXCESS;
04130	OUT(CHAN6,CVXSTR(FEAT4[I]&TB&CVS(FOUND)&TB&CVS(CONFRM)&TB&CVS(MAYBE)&TB&
04140	  CVS(EXCESS)&TB&CVS(MISS)&CRLF);
04150	END;
04160